package com.blog.exception;

import com.blog.Utils.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * @author 任浩
 * @version 1.0
 */

//这是Controller的全局异常处理控制器。
//在这里进行统一日志处理，并且返回给客户端错误的信息。

@RestControllerAdvice
@Slf4j
public class ControllerGloableExecptionHandler {

    @ExceptionHandler(value = RuntimeException.class)
    public Result exceptionHandler(RuntimeException exception){
        exception.printStackTrace();
        log.info("出错信息为：" + exception.getMessage());
        return Result.error(exception.getMessage());
    }

    /**
     * 服务层发生异常的全局异常捕获。
     * @param exception
     * @return
     */
    @ExceptionHandler(value = ServiceException.class)
    public Result exceptionHandler(ServiceException exception){
        exception.printStackTrace();
        log.info("出错信息为：" + exception.getMsg());
        return Result.error(exception.getMsg(),exception.getCode());
    }

}
